<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        var obj = {};
        obj.name = '何律';//添加对象
        obj.age = '22';
        obj.say = function () {
            alert('a');
        } //  添加函数
        console.log(obj.name); // 获取对象  如果没有这个对象名不会报错 返回undefined
        obj.name = '何律律'; // 修改对象

        delete obj.age;// 删除对象
        console.log(obj);
        // 一般当对象的属性名是用某个变量代表(保存)的，我们就需要使用对象[]语法进行操作。
        // obj['name'] = '何律' 就是把.换成了[]


        for (var key in obj) {
            // xx.xx 这种形式 只能取原来具有的属性
            // 非常重要! xx.abc  abc如果是变量,就必须通过  xx[abc] 形式取值
            // 因为[]才具备解析变量的作用
            console.log("属性" + key + "==>" + obj[key]);//何律Objectname: "何律律"say: ƒ ()[[Prototype]]: Object属性name==>何律律属性say==>function () {alert('a');
        }
        // arguments.length; 返回的是实参的个数。
        // arguments.callee; 返回的是这个函数本身。在使用函数递归调用时推荐使用 arguments.callee 代替函数名本身。

    
        // JSON.stringify 将对象转换为JSON格式的字符串。
        // JSON.parse 将 JSON 格式的字符串转换回对象。
    </script>
</body>

</html>